import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/homePage/homePage.vue'
import Feature from '../views/featurePage/feature.vue'
import noPage from "../views/error/pageNoFound.vue"; //404 page
import note from "../views/featurePage/readingnote/note.vue";//设置用户信息
import userinfo from "../views/userconfig/userconfig.vue";
import  { uinfo }  from "../../api/userInfo.js";

Vue.use(VueRouter)

  const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,

  },
  {
    path: "/errorPage",
    name: "page not found",
    component: noPage
  },
  {
    path: "/func",
    name: "functionality",
    component: Feature,
    redirect:"/func/note",
    children:[
      {
        path: "note",
        name: "pc note",
        component: note,
        meta: {
          keepAlive: true, // 需要缓存
          index: 1
        }
      },
      {
        path: "userinfo",
        name: "user information",
        component: userinfo,
        meta: {
          keepAlive: true, // 需要缓存
          index: 2
        }
      }
    ]
  }
  
  // {
  //   path: '/func',
  //   name: 'functionality',
  //   component: Feature
  // },
  // {
  //   path: '/about',
  //   name: 'About',
  //   // route level code-splitting
  //   // this generates a separate chunk (about.[hash].js) for this route
  //   // which is lazy-loaded when the route is visited.
  //   component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
  // }
]

// class Pather{
//   constructor(){

//     const allPath = [
//       {
//         path: "",
//         name: "root page"
//       },
//       {
//         path: "/",
//         name: "home page"
//       },
//       {
//         path: "/func",
//         name: "user page",
//       },
//       {
//         path:"/func/userinformation",
//         name: "user information"
//       }
//     ];

//     this.checkPathExist = function( path ){
      
//       for( let i = 0 ; i < allPath.length ; i++  ){
//         // alert( allPath[i] +"   "+ path );
//         if( allPath[i].path == path ) {
          
//           return true;
//         }
//       }
//       return false;
//     }

//   }
//   getDir( path ){
//     let pathnames = path.split("/");
//     return '/'+pathnames[1];
//   }
//   getUserPageComponent( path ){
//     let coms = {};
//     switch( path ){
//       case "/func" :
//         coms.path = "/func",
//         coms.name = 'functionality',
//         coms.component = Feature ;
//         coms.children = [{
//           path: "userinformation",
//           name: "userinfo",
//           component: note
//     }];
//       break;
//     }
//     return coms;
//   }

// }


const router = new VueRouter({
  mode: 'hash',
  routes,
  scrollBehavior (to, from, savedPosition) {
    if (savedPosition) {
      return savedPosition
    } else {
      return { x: 0, y: 0 }
    }
  }
})
// const pather = new Pather();
// router.beforeEach( async (to, from, next) => {
//   /* must call `next` */

//   // //检查是否有注册页面
  
//   // if( pather.checkPathExist( to.path ) ){
//   //   //路径已注册
//   //   if( to.matched.length == 0 ){
//   //     //没有找到指定路由
//   //     let token = localStorage.getItem("token");

//   //     if( !token ){
//   //       next("/");
//   //       return ;
//   //     }
//   //     try{
//   //       //判断用户在在线状态
//   //     let status = await userinfo.checkOnlineStatus( token );
//   //     console.log("status: " , status.data);
//   //       if( status.data.code == 0){
//   //         if( status.data.data.status == 1 ){
//   //           //离线
//   //           next("/");
//   //           return ;
//   //         }

//   //         if( status.data.data.status == 0 ){
//   //           console.log(router);
//   //           router.addRoutes([ pather.getUserPageComponent( to.path ) ] );
//   //           router.replace( to.path );
//   //           next( );
//   //           return ;
//   //         }

//   //       }
//   //     }catch(err){
//   //       console.log(err);
//   //     }

//   //   }
//   //   next();
//   //   return ;
//   // }

//   // if( to.path == "/errorPage"){
//   //   next();
//   // }
  
//   // next("/errorPage");
//   next();
  
// })

// router.beforeResolve((to, from, next) => {
//   /* must call `next` */
  
//   next();
// })

// router.afterEach((to, from) => {})

export default router
